package leetcode.editor.cn;

public class BaShuZiFanYiChengZiFuChuanLcof {
    public int translateNum(int num) {
        String numstring = String.valueOf(num);
        // 动态规划常将dp[]长度 + 1，留一位，可以减少初始化
        int[] dp = new int[numstring.length() + 1];
        dp[0] = 1;
        dp[1] = 1;
        // 注意i的边界，这里dp数组 1 - i+1 位，对应的是num中遍历到0 - i位的翻译方法数目
        for (int i = 2; i < numstring.length() + 1; i++) {
            String temp = numstring.substring(i - 2, i);
            dp[i] = temp.compareTo("10") >= 0 && temp.compareTo("25") <= 0 ? dp[i - 2] + dp[i - 1] : dp[i - 1];
        }
        return dp[numstring.length()];
    }

    public static void main(String[] args) {
        int res = new BaShuZiFanYiChengZiFuChuanLcof().translateNum(12258);
        System.out.println(res);
    }
}
